// 仅用于前端查看 token payload，不用于信任/验证
export function parseJwt(token: string): Record<string, any> | null {
  try {
    const payload = token.split('.')[1];
    const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');
    // 补齐 padding
    const padded = base64 + '='.repeat((4 - (base64.length % 4)) % 4);
    const decoded = atob(padded);
    // 解码 URI 编码形式
    const json = decodeURIComponent(
      decoded
        .split('')
        .map(c => {
          const hex = c.charCodeAt(0).toString(16).padStart(2, '0');
          return '%' + hex;
        })
        .join('')
    );
    return JSON.parse(json);
  } catch {
    return null;
  }
}
